package com.chuangshi.core.vote.member.service;

import com.chuangshi.core.kit.Result;
import com.chuangshi.core.mongodb.MongodbService;
import com.chuangshi.core.vote.member.controller.admin.request.MemberAdminV1ListRequest;
import com.chuangshi.core.vote.member.entity.Member;

/**
 * 会员业务接口
 *
 * @author marcus
 * @date 2018-11-20
 */
public interface MemberService extends MongodbService<Member> {

    /**
     * 会员列表
     *
     * @param request 请求参数
     * @return Result 返回参数
     */
    Result listForAdmin(MemberAdminV1ListRequest request);

    /**
     * 根据unionId和小程序openId查找单个会员信息
     *
     * @param appId 应用编号
     * @param memberWechatUnionId unionId
     * @param memberWechatMiniOpenId 小程序openId
     * @return
     */
    Member findByUnionIdAndMiniOpenId(String appId, String memberWechatUnionId, String memberWechatMiniOpenId);

    /**
     * 根据手机号码查找单个会员信息
     *
     * @param appId 应用编号
     * @param memberMobile 会员手机号码
     * @return
     */
    Member findByMobile(String appId, String memberMobile);

    Member findByOpenId(String openId);
}